草庐IT

c++ - SIMD C++ 库

全部标签

c - 如何识别 TCP 3 次握手中的初始数据包?

当客户端通过发送其初始数据包启动3次TCP握手时,AcknowledgmentNumber(请注意我在这里不是在谈论ACK标志)是否设置为0是真的吗?我有一个TCP跟踪文件,我使用C中的pcap库打印出每个数据包的特定信息。我注意到连接中第一个数据包的AcknowledgmentNumber始终设置为0。我可以将其用作识别TCPsession的第一个数据包的标准吗?如果不是那样,我可以使用哪些其他标准来将给定数据包识别为Web客户端发送的第一个数据包?仅仅查看SYN标志是行不通的,因为当服务器响应客户端的初始请求时,它也会设置其SYN标志。 最佳答案

c++ - 将 SFML 网络与 SDL2 结合使用

我有一个使用SDL2、SDL2_ttf、SDL2_image和SDL2_mixer的程序!我考虑过使用SDL_net进行网络连接,但我看到了SFML的网络模块和TCP的数据包系统,我想仅使用SFML库中的SFML网络模块。这可能吗?有SDL_net的Packet系统吗(官方没有) 最佳答案 isthatpossible?是的!基本上,当settingupyourproject您需要链接到sfml-system和sfml-network(当然还有SDL库)。然后您可以communicatewithsockets或usepackets和

c - 心脏出血错误 : Why is it even possible to process the heartbeat request before the payload is delivered?

首先,我不是C程序员,而且OpenSSL代码库很大,所以请原谅我问了一个我可能会找到答案的问题,因为我有时间和技能来深入研究代码。据我所知,TLS在TCP上运行。TCP是面向流的,因此无法知道消息何时已交付。您必须事先知道传入的消息应该有多长,或者有一个要扫描的分隔符。考虑到这一点,OpenSSL如何在收到完整有效负载之前处理心跳请求?如果OpenSSL在收到有效负载长度后才开始处理它从TCP套接字读取的第一block数据,那么OpenSSL不仅不安全,而且在正常操作下会损坏。由于TCP的最大段大小为536字节,任何大于该大小的有效负载都将跨越多个TCP段,因此可能跨越多个套接字读取。

c - 是否可以读取为 TCP 写入套接字缓冲的字节数?

我有一个应用程序使用civetweb(以前称为mongoose)HTTP服务器库来创建MJPEG流。当我的MJPEG设置与客户端连接的网络带宽配置文件相匹配时工作正常,但有时我们会遇到低带宽连接,我想通过丢帧来适应这种情况。现在,当我调用mg_write()时,mongoose库会像这样调用send():send(sock,buf+sent,(size_t)k,MSG_NOSIGNAL);我想做的是检查套接字的传出缓冲区,如果已满,则跳过一帧。有什么方法可以在应用程序级别进行检查吗?编辑:只是给MJPEG人员的旁注,这些TCP缓冲区非常大,我实际上最终测量的只是缓冲区中是否存在任何字节

c - 在 C 中立即(逐个数据包)从套接字接收 TCP 有效负载

如何在C中逐个数据包地从开放网络套接字接收数据(字节流)?我想在数据到达时立即从套接字中读取数据(数据包一到达机器)。似乎当我在套接字上执行read()(或recv())调用时,我得到了超过10,000字节的整个TCP消息。相反,我想接收第一个TCP段有效载荷,处理它,然后继续下一个,等等。注意-我不想要原始数据包。只是TCP段数据负载。另请注意-本质上,我想通过在数据到达时立即处理数据来最大程度地减少延迟,而不是等待整个TCP消息在TCP层中累积。任何想法将不胜感激,谢谢! 最佳答案 也许我误解了你的问题(例如,我不能完全理解“不

c - C 语言的 Windows 套接字编程

我正在上一门网络类(class),教授正在为全类同学朗读这本书。不用说我不知道​​我在做什么。我们的学期项目是从教科书中复制代码并制作客户端-服务器网络。直接从书中复制代码,不做任何修改。这本书的代码有错误(缺少分号,额外的括号),但我至少设法编译了代码。但是,我遇到了一堆链接错误。例子:错误1errorLNK2019:unresolvedexternalsymbolimpsendto@24referencedinfunction_mainC:\Users\Documents\VisualStudio2010\Projects\Client_Server\Client_Server\C

c - 在 C 中通过 TCP (SOCK_STREAM) 套接字传递结构

我有一个小型客户端服务器应用程序,我希望在其中使用C而不是C++通过TCP套接字发送整个结构。假设结构如下:structsomething{inta;charb[64];floatc;}我发现很多帖子说我需要使用pragmapack或在发送和接收之前序列化数据。我的问题是,使用JUSTpragmapack还是仅仅使用serialzation就足够了吗?还是我需要同时使用两者?此外,由于序列化是处理器密集型过程,这会使您的性能急剧下降,那么在不使用外部库的情况下序列化结构的最佳方法是什么(我想要示例代码/算法)? 最佳答案 您需要以下

c++ - 关于 Swift 中从 C 文件访问 "typedef void PaStream;"的正确语法的任何帮助?

我已经将一个名为portaudio(PortAudiowebsite)的dylibC库编译并导入到一个Xcode6.1Swift项目中,除了一个是typedefvoidPaStream;我无法理解如何在Swift中使用它,在C中我这样声明:PaStream*audioStream=NULL;当我收到一条警告说未声明的类型/未解析的标识符时,任何人都可以在Swift等效项上提供帮助,看起来Swift无法桥接typedefvoidxyz;?非常感谢您的帮助。 最佳答案 C类型定义typedefvoidPaStream;确实没有导入到Sw

c - Swift调用C API时如何处理指针

c库API:mycapi.htypedefstruct{intitype;double*dx;double*dy;}MyObjInfo;typedefMyObjInfo*MyObjHandle;MyObjHandleMyObjInit(constchar*pFile);添加myapi.h作为模块我的快速代码:importFoundationimportmycapiModulevarh:MyObjHandle=MyObjInit("/home/a")varo:MyObjInfo=h.memory////todosomethings//...h.destroy()h=nilprint("\

c - 如何在 swift 3 中使用我的静态库 (.a)

我想在swift3中构建和使用静态库(.a)。示例:我构建了一个libhelloLib.a,并使用它。你好.c#include#include"hello.h"intprintHello(){printf("hellowourl");return0;}你好.h#includeintprintHello();构建为:libHello.a并复制到/usr/local/lib快速代码模块.模块映射modulehello[system]{header"hello.h"link"libhello"export*}Package.swiftimportPackageDescriptionletpa